RRRRRR UU UU FFFFFFFFF UU UU SSSSSSSS RR RR UU UU FF UU UU SS RR RR UU UU FF UU UU SS RR RR UU UU FF UU UU SSSS RRRRRR UU UU FFFFFFF UU UU SSSS RR RR UU UU FF UU UU SS RR RR UU UU FF UU UU SS RR RR UUUUUUU FF UUUUUUU SSSSSSSS Version 1.02 [v. 1.06 notes added] Universal Communication Software Copyright ½ 1990 by Michael Bernards [English Translation ½ 1992 by \/apourware PLC, for Michael Bernards] [Note: While all care was taken to insure proper translation of the text, \/apourware, its employees and representatives cannot be held responsible for any errors in this translation, or the original document used. All possible efforts will be made to correct any errors which \/apourware is notified of. Notification will be posted of the errors, and corrections, at the original point(s) this document is made available. This document is provided to allow your use and enjoyment of RUFUS. We make no warranty of any type reguarding the suitability of RUFUS for the activities you desire to attempt to use it to perform. We cannot be held liable for any losses you incur in your use of RUFUS. In other words, use at your own risk!! M_Kg. Mark Kelling -- \/apourware PLC 21 Mar. 1992 version 1.6C ] - i - Table of Contents Chapter 1 Introduction 1 1.1 What does RUFUS do? 1 1.2 A Few Words about the Shareware Concept 2 1.3 Computer Configuration 2 1.4 The Manual 2 1.5 Packing List 3 1.6 Installation 3 1.6.1 GDOS - "Was ist das?" 4 Chapter 2 An Overview 5 2.1 Menus 5 2.2 Dialogs 5 2.3 Window 5 Chapter 3 The Menus 6 3.1 The 'Files' Menu 6 3.1.1 INF load... 6 3.1.2 INF write... 6 3.1.3 EXecute Program... 6 3.1.4 Shell Access 6 3.1.5 Batch Start... 6 3.1.6 Do Batch Command 7 3.1.7 Quit 7 3.2 The 'Block' Menu 7 3.2.1 Block Save... 7 3.2.2 Block Send 7 3.2.3 Copy Block to Clipboard 7 3.3 The 'Transfer' Menu 7 3.3.1 File Send... 7 3.3.2 File Receive... 7 3.3.3 ASCII File Send 8 3.3.4 Buffer load... 8 3.3.5 Buffer Save 8 3.4 The 'Parameter' Menu 8 3.4.1 RS232 8 3.4.2 Terminal 8 3.4.3 Protocal 9 3.4.4 Modem 10 3.4.5 F Keys 10 3.4.6 Numbers 10 3.4.7 Buffer 11 3.4.8 Set Fontz 11 3.4.9 Paths 12 3.5 The "POP-UP" Menu 12 Chapter 4 Terminal Emulation 13 4.1 VT52 Emulation 13 4.2 VT100 Emulation 13 4.2.1 ANSI Extensions 13 4.2.2 VT200 Extensions 13 - ii - Chapter 5 The Keyboard 14 5.1 General Keys 14 5.2 Special Terminal Keys 14 5.2.1 Keypad in VT52 Mode 14 5.2.2 Keypad in VT100 Mode 14 Chapter 6 File Transfer 15 6.1 ASCII 15 6.2 XMODEM 15 6.3 YMODEM 15 6.3.1 YMODEM-G 15 6.4 ZMODEM 15 6.5 STREAM 15 Chapter 7 Modem Usage 16 7.1 The Proper Parameter 16 7.2 Editing the Numbers 16 7.3 Dialing a Number 16 7.4 Dialing Several Numbers 17 Chapter 8 The Programming Language 18 8.1 Overview 18 8.2 Variables 18 8.3 Labels and Branching 18 8.4 The Commands 18-23 Appendix A Emulation Implementation 24-27 Appendix B Keyboard Combinations 28 Appendix C Special Files 29 Appendix D Listing of RUFUS Commands 30 Appendix E Escape Sequences in Terminal Emulations 31 Index 32 - 1 - Chapter 1 Introduction 1.1 What does RUFUS do? Terminal programs give access for the Atari ST to other computers. From the beginning there exited many products with support for VT52 and VT100 emulation. As file transfer protocalls capabilities, almost all supplied XMODEM and KERMIT. Meanwhile, that left the user with a long list of communication software capabilities to wish for. The interface had itself certainly hardly been employed. Of course, almost all programs had a GEM element assigned, but a true binding with the interface still scares many away on the ATARI. The consequence is -- a boring terminal representation. [TR note: this section of text appeared damaged. This paragraph was reconstructed best as could be.] Having a many color screen and a graphic containing HYPERSCREEN your modem's output can be well represented again with the picture screen representation commanding 640x400 points. The future machines such as the TT are not completely supported, not having one at hand. The basic idea of RUFUS was, a terminal program able to handle all screen types accessable from your house. So RUFUS comes with a VT52 and a VT100 emulation. The VT100 emulation also understands all ANSI codes and most VT2xx commands. For transfer protocalls RUFUS also offers in addition to X-, Y- and ZMODEM a special transfer mode for between two computers. A complex modem management support works with online systems. A special bonus is the accessory mode. RUFUS works also as an accessory and waits then with a new function, background transfer. The formation of the dialog boxes and the menu lists come from a mutually consistant system and different respected programs. So it is that in all boxes an OK and a CANCEL button are found, below on the right in the corner. Through these clear command conventions the functions of RUFUS are easily learned. - 2 - 1.2 A Few Words About the Shareware Principle RUFUS is a product of the Shareware market. This means the program may be freely copied and distributed. No one must therefore purchase the proverbial cat in the bag. Consequently, opposite from public domain software, all rights remain with the author, and RUFUS cannot be sent or distributed through PD services. Regular use requires the payment of a relatively small fee of DM40.00 to the author (address and Bank Transfer information below). As a small show of many thanks for the recognition, register and receive upcomming updates information. Also, a future goal is the payment of an additional DM10.00 fee getting the manual sent to you in printed form. I hope for much, and that in the future being much more comfortable with the concept, to keep up continued expansion and development through RUFUS royalties. Send error reports please to the following address: Michael Bernards Bussardweg 1 5204 Lohmar/Geber West Germany or by network: Michael Bernards@BN im Mausnet Michael_Bernards@SPACER im Zerberus-Netz MEGAMAIL:M_BERNARDS im MagicNet Fido-Net 2:244/11.4224 MICHAEL_BERNARDS;MM im PCNet Bank Transfer Information: Raiffeisenbank Lohmar, BLZ 37069477, account 15490 1.3 Computer Configuration To work, RUFUS needs an ATARI ST with at least 512 KB memory and a floppy disk drive. Other graphics cards can be used, as long as a VDI driver is provided. 1.4 The Manual The handbook is subdivided into four sections. In the first part is an introduction to RUFUS, also a basic description of the parts. Following is a detailed command description of all menus and dialog boxes and their function. Next is a detail of the complex functions which RUFUS engages. In the Appendicies the user can find references to the important questions in overview. - 3 - 1.5 Packing List The following files belong with RUFUS: AUTO AMCLIGHT.PRG AMCGDOS v4.00 by Arndt Beissner. Special version. GEMSYS RUFUS05.FNT Character set 7x5 Pixel RUFUS09.FNT Character set 11x6 Pixel with all ANSI Characters RUFUS10.FNT Character set 14x7 Pixel with all ANSI Characters RUFUS12.FNT Character set 16x8 Pixel with all ANSI Characters GEMINI.FNT Character set 10x6 Pixel RUFUSCOL RUFUS.FNT Font for use with color medium resolution monitor. RUFUSCOL.TXT Description of how to use the font. RUF assorted example batch programs MODUL TERM.TTP BTX-Decoder KERMIT.TTP Kermit Transfer program SZ.PRG ZMODEM Send program RZ.PRG ZMODEM Receive program RUFUS.APP the Program RUFUS.RSC the Resource RUFUS.INF Parameter file RUFUS.FNT Character set used when GDOS is not resident (mono monitor) RUFUS.TXT Manual to RUFUS in ASCII Format READ_ME.1ST Hints and Update info All registered customers who desire can receive the manual in printed form. 1.6 Installation The installation of RUFUS is very simple. The user needs only to copy the files into the folders [as listed in 1.5]. If the user does not have GDOS installed and wishes to use all the fonts possible with RUFUS, he should first study the next section [1.7] closely. After you have RUFUS copied onto the correct disk, start the RUFUS.PRG. The menu and the window should appear on the screen. Now select the PARAMETER menu and enter all personal parameters. The many options should correct any problems. If the user feels trapped with questions the following sections of the manual will answer them. Should the user want to use RUFUS as an accessory, proceed as follows. RUFUS.PRG must be renamed RUFUS.ACC and copied into the root directory of the boot disk (C: for hard drives, A: for floppy). The user must also copy RUFUS.RSC and (when present) RUFUS.INF to the root. - 4 - 1.6.1 GDOS - "Was ist das?" This is a question which, unfortunately, is heard too often still as more exotic programs become finished. During development, the operating system interface is loved, only later is it found that one important part of GEM was dropped under the table. Later this part was offered as a free standing program. Without this part GEM cannot load fonts or talk to some peripherals. RUFUS relys only on system fonts and the one custom font; however, to place more than 80x25 in one window or screen, RUFUS also needs GDOS. It gives a backdoor for the user to not require the computer to have GDOS resident, but this is not recommended. How else can it be said: GDOS is a part of the operating system. [To run RUFUS as an ACCessory, you _must_ have GDOS installed. Otherwise, the computer will bomb.] To install GDOS the user must follow these instructions: 1. A GDOS program must be copied into the AUTO folder on the boot disk. There are several suitable programs. With RUFUS, the AMCGDOS program by Arnd Beissner is supplied. 2. The folder GEMSYS must also be copied to the root directory of the same boot disk. 3. Into the root directory of the boot disk the file named ASSIGN.SYS must be copied. 4. The computer is rebooted. A message should appear saying GDOS is now installed. - 5 - Chapter 2 The Interface 2.1 The Menu Using the Menu the user can reach all the important RUFUS functions. When the user clicks with the mouse pointer in the menu bar a list falls. With these lists the desired function can be selected. 2.2 Dialoges The dialoges in RUFUS appear to be somewhat different than those in other GEM programs. They are based on the "Fliegenden Dialogen" from Julian Reschke, in RUFUS they do a good job. All dialogs have a similar construction. Above left in the corner is an underlined text, this is the function of the box. On the oposite corner are the action buttons. With these buttons the user exits the dialog. The heavily outlined button can also be selected with the RETURN key. In the upper right corner is the folded button. Clicking and holding with the mouse pointer there, the user can drag the dialog box and position it freely on the screen. One additional command is the so called shortcut. Everywhere there is a letter underlined, the user can select that function by pressing the key in combination with the ALTERNATE key. So the user can exit almost every dialog with ALTERNATE-C for Cancel. Dialed items selected by arrows (such as BAUDRATE in the RS232 menu) can be selected with the corresponding cursor keys. 2.3 The Window In the same Window the terminal and the view buffer are accessable. As is normal, the window has only one drag bar and one info line. With the drag bar the window can be freely positioned on the screen. In the title is the name of the last online service reached. The info line contains diverse information about how the user has the program configured. On the left is the status of the keypad with the condition listed to the right. A NUM means that the normal characters are sent. In APPLICATION mode (APPL) the keys respond as expected depending on the terminal emulation selected. Explaination of this subject will be found in the chapter discussing the keyboard. With the right mouse button the user can select the view buffer screen. The window has a vertical scroll bar now, allowing the user to wander through the buffer. With the cursor up and down keys the user can also scroll, while in connection with the SHIFT key even sideways. Close the window when run as an application, and the program ends. In accessory mode it only shifts to a standby condition. Open the window again, and the RUFUS accessory returns to the previous condition. - 6 - Chapter 3 The Menu 3.1 The File Menu Under the title 'Files' are gathered the functions which deal with the mass storage devices in general. By the way, batches and programs may also be started from here. 3.1.1 INF Load... With this function the user can load INF files. These are where all the paramters for RUFUS are stored. The user can have different configuration files stored and use them. When selected, this brings up a standard file selector box allowing selection of the INF file. The standard path can be set in the menu Parameter Path Select. 3.1.2 INF Write... With this the user can create files containing the actual parameter settings for his version of RUFUS. The File Selector box appears with the specified Parameter path selected and RUFUS.INF as the file name. So just by pressing RETURN the user can complete the action quickly. 3.1.3 EXecute Program... Sometimes it is useful to run other programs without leaving the terminal program first. RUFUS offers several possibile ways to do so. Selecting the menu item brings up a file selector so the user can select a program to run. Next a dialog will ask for the parameters the program expects to have to run. If the program selected has a suffix of TOS or TTP RUFUS shifts into the VT52 emulation mode and the program runs in the window. Otherwise, the window will be closed and then the program run. When done, control is returned to RUFUS. 3.1.4 Shell Access This function is only accessable when the user has installed a command line processor that has a shellpointer correctly set up. Two that come to mind are GEMINI and MUPFEL from Stefan Eissing and Gereon Steffens. With Run SHELL this program can pass one command for processing. The response that is returned is either placed in the RUFUS window or the effect is noticed over the whole program. This in the menu Parameter Terminal is selected. 3.1.5 Batch Start... A RUFUS batch program can be started with this function. RUFUS programs are TEXT files containing commands which RUFUS can understand and act on. A complete discussion of the commands and their syntax can be found in the chapter "The Programming Language". Also here a File Selector appears allowing selection of the Batch file. - 7 - 3.1.6 Give Batch Command With this one a single command of the Programming Language of RUFUS can be executed. This is a good way for the user to try them out. 3.1.7 Quit After a dialog asking to save the buffer, RUFUS is exited from here. If RUFUS is installed as an accessory, only the window is closed. 3.2 The 'Block' Menu Under this menu title are functions concerning block manipulation. Blocks can be marked in view mode, the desired section marked by clicking and holding the mouse button, then dragging the mouse above or below that point. In Version 1.02 blocks are still not depicted as being marked. 3.2.1 Block Save... Calls the File selector box to allow the user to specify the name under which the marked block should be saved. 3.2.2 Block Send The marked block will be sent over the serial port through the modem. 3.2.3 Copy To Clipboard The marked block is copied to the GEM Clipboard folder. If the Clipboard is not found, RUFUS creates one. [Clipboard is the accessory found with the GEMINI package.] 3.3 The 'Transfer' Menu Under this title the user will find the functions to transfer files over the serial port - modem. 3.3.1 File Send... One file, with the currently selected protocal, is sent. The protocal can be selected in the Protocal menu (section 3.4.3). The desired file can be selected with the File Selector box presented. 3.3.2 File Receive... This will receive one file using the preselected transfer protocal. The protocal can be selected in the Protocal menu (section 3.4.3). The name can be selected through the File Selector box. The exception is ZMODEM, where the file name is received from the sender. - 8 - 3.3.3 ASCII File Send... One file, without any protocal, is sent. Here also will appear the File Selector box allowing the file to be chosen. A box with a gray bar to show transfer progress will appear. 3.3.4 Buffer Load... This makes it possible to load the capture buffer from disk. With the File Selector the desired file is selected. [Note: The buffer must be switched ON before this option is selected. See section 3.4.7 on how to select buffer options.] 3.3.5 Buffer Save... All the captured data in the buffer can be saved to one file with this function. The file name may be selected with the File Selector. 3.4 The 'Parameter' Menu With the menu selections found under this title all parameters of RUFUS can be adjusted. 3.4.1 RS232 After selecting this item, it produces a dialog box in which all options for the serial port can be set. The default setting is 8 data bits, no parity, 1 stop bit and no handshaking. The parameters are preset at most bulletin board systems and also at mainframes, and must be determined. Most give them in short form such as 2400baud/8N1. Choosing OK will set the port to the specified options and with CANCEL, the previous settings are retained. The left and right cursor keys are an alternate method of setting the baud rate to be used. 3.4.2 Terminal In this dialog box all the choices are given for the look and emulation mode of the terminal to select. The first choice is emulation. RUFUS offers three terminal emulations: 1. VT52 - This is one emulation of the DEC terminals. This format is what the ATARI ST system uses, the auto folder programs use this before the other portions of the system are enabled. 2. VT100 - The current standard terminal from DEC. In this emulation mode, RUFUS also handles codes for VT2XX terminals and the ANSI codes. 3. ASCII - No emulation. All characters shown as given. The next item is Echo Mode. FULLDUPLEX means that all characters from the keyboard are sent only to the serial port. HALFDUPLEX puts the characters on the terminal screen also and LOCAL-MODE writes the characters only in the screen. - 9 - At LineEnd the user can select what happens when the terminal screen reaches the end of the line. BREAK means that a line feed and a carriage return are automatically placed and the text is continued on the next line. WRAP pulls the complete word into the next line (not implemented in this version [1.02]). OVR means that the remaining characters are simply written over each other in the last character spot. Where V52 only offers inverse text for special effect, RUFUS offers the possibility of inverse, thickened, or underlined text. The number of lines and columns for the terminal window can be freely set in RUFUS. The default and most popular is 80X24 (as the VT100 and VT52 use) or 80X25 (VT52 under TOS). Included in this dialoge as still six other options to set. The first option selects whether new line should be sent as only a carriage return or coupled with a linefeed also. With the second the user can select whether, when backspacing, if the character under the cursor is erased or remains visible. The third option selects whether the responses from a shell program are written in the RUFUS window or windows are closed to allow the program to run on the whole screen. Many mainframes, in spite of the 8 bit conection, can handle only 7 bit data through the RS232 port. The high bit can be stripped, or allowed through by setting the fourth option. The fifth option selects whether the keypad is in ATARI mode or terminal emulation mode. With the sixth and last option the user can remove the status line from the terminal window. One more line can then be viewed on screen. [Usefull on medium resolution ST screens.] 3.4.3 Protocall After selecting this option one dialog box opens where all parameters for the file transfer protocalls can be selected and set. RUFUS offers the choice of five protocalls: XMODEM, YMODEM, YMODEM-G, ZMODEM, and STREAM. The first three mentioned may be run in the background. ZMODEM calls on the programs RZ.TTP and SZ.TTP. STREAM exists (till now) only in RUFUS. It lends itself especially to file transfers on error free lines (computer to computer, MNP-5), and works only with a handshaking control (XON/XOFF, RTS/CTS). On the right side the user finds a box with two buttons active only when RUFUS is installed as an ACCessory. With the first button, it can be selected whether file transfers are expected to run in the background. With the second, whether or not to return to a RUFUS window at the end of a file transfer can be selected. Users who select ZMODEM to transfer files normally do not get a file selector dialog when ZMODEM starts. If they desire one, this may be selected in the Protocall Dialog Box. The option strings for the ZMODEM programs RZ and SZ can be given in this dialog also. The string "-B" is given for both strings which means use default settings. - 10 - 3.4.4 Modem For the modem, RUFUS gives much choice to parameter setting. Before and after all the desired communication, RUFUS is required to pass one modem command to assure it works. The first string is the Dial command. This must end with a carriage return (CNTRL-M). A number sign ('#') stands for the selected telephone number. The second string is sent before the call and is a modem reset command. Here also a carriage return is required. Most modems after a reset cannot accept commands for a few moments, it is therefore necessary to pause. This is represented in the string with the CTRL-I characters. Each gives a half second pause. The following string is the message from the modem after a successful connection. The next three strings are the negative messages. RUFUS uses these for auto redial. At the end come some switch for more options. Automatic Baud rate Selection means RUFUS uses the modem's answer message and GGF [TR ?] to select the baudrate. If RUFUS has the Automatic Redial selected, it is to protect the modem that it pauses a while, allowing the phone line to clear. The time length of the pause can be set to the user's preference. RUFUS cancels at user's request dialing the modem. This is the last command here. 3.4.5 F' Keys RUFUS offers 20 freely modifiable Function keys: ten normal and 10 shifted. One benefit is the user can place a batch file name into a function key, and when that key is pressed, RUFUS immediately executes that batch. The file name must be preceeded by the '&' symbol. Similarly, the user can call one batch command with a function key by placing the '%' symbol in front of the command. Examples: %DIAL "1234" Dials the number 1234. &RUFUS.RUF Executes the batch file RUFUS.RUF. 3.4.6 Numbers In this dialog box are the settings for BBS system dial ups. On the right side, the user finds the name of the currently selected BBS. Through selective clicking with the mouse, the different fields can be selected and edited with the new name showing up in the box to the left. With a double click on the name or through the "Dial" button below, the call will be started. Alternately, the user can select any of the sixteen numbers to be dialed with the F1 through F10 and shifted F1 through shifted F6 keys. There are only eight of the 16 numbers visible in the window at a time, using the scroll bar the others can be viewed. Shift UP Arrow or Shift Down Arrow also scrolls the window. Underneath the editable fields the user can select whether several numbers can be selected to dial. All numbers in the list will be dialed one by one by RUFUS until a connection is made. With the next selection the automatic dial function can be selected. RUFUS then dials one or all numbers until a connection is made, or the user cancels. The auto dial feature needs the Failure Codes from the MODEM to work properly (3.4.4). - 11 - 3.4.7 Buffer The buffer is a special storage place in which everything comming in the serial port is collected without terminal protocal. In the Buffer Size entry one can adjust how big the buffer should be. Under this are four other selections. The first selection is whether the incomming data should be written to the buffer or not. The next is whether to warn the user before a buffer is erased. Turn this warning on, and the user can decide whether the buffer is lost or saved. Should the buffer not be lost, writing to the buffer is switched off. With the middle switch, the user selects if a full buffer is automatically saved and whether or not it is appended to a file if that file already exists. If this last is not active, RUFUS may eventually lose a file by writing over the exisiting one. The name, under which RUFUS will automatically save, can be specified in the menu. There the user can give the control codes from the following table: %a Abbreviated Weekday name %A Full weekday name %b Abbreviated Month name %B Full month name %c Date and time %d Day of month (1-31) %H Hour (0-23) %I Hour (0-12) %j Day of year (1-366) %m Month (1-12) %M Minute (00-59) %p AM/PM %S Second (00-59) %w Day of week (0-6) %W Week of year (0-52) %x Local date representation %X Local time representaion %y Year without century (0-99) %Y Year with century %Z Timezone name (produces: MEZ) %% The '%' character [These codes are the same as specified in ANSI C for time / date string formatting.] So by specifying RC%y%m%d.TXT on 11 Nov 1990 the file RC901111.TXT would be the result. The selection ERASE erases the buffer, while SAVE will write the buffer to disk. ERASE also can be accessed with the keyboard combination ALT-Y and SAVE with ALT-G. 3.4.8 Set Fontz RUFUS loads existing fonts over GDOS. In the menu Set Fonts the user can dial type and size, as he chooses. RUFUS uses only a single font, and not porpotionally. When changing the font by the user in the menu, RUFUS shows the smallest available size. A peculiarity is the system font (6x6 built in). There TOS hides the three system fonts. With a point size of 8 the user gets the 6x6 font, 9 point is the 8x8 font and 10 selects the 16x8 font. If GDOS is unavailable when requested by RUFUS, only the font RUFUS.FNT gets loaded. When not loaded when the computer boots, the user has none but the 6x6 system font in three sizes. - 12 - 3.4.9 Disk Paths RUFUS manages many different paths. The first tells where RUFUS will load Batch files from. The second path informs RUFUS where the files to be uploaded are. The path where the INF files are kept is given by the third path. With the next path setting for the user, the buffer write location is given. With the fifth path, the user can specify where the programs RZ.PRG and SZ.prg for ZMODEM transfer are to be found. The last path is for the downloaded programs' placement. All paths can always by typed by hand by the user or also with the file selector box when the user clicks on the path input line. 3.5 The "POP-UP" Menu Since accessories have no pull down menus available, RUFUS uses Pop Up menus when in accessory mode. The user can access the menu with a click in the window or by pressing the HELP key. With the gray bar the menu can be moved around. By dragging in the menu, and holding with the arrow, the items under the menu will click into place. - 13 - Chapter 4 Terminal Emulations 4.1 VT52 VT52 is a simple terminal. Almost all known BBS systems understand the VT52. The codes are the same used by the TOS window management system. The VT52 mode is what the ST enters when a TOS or TTP program is started or a Shell program is used. The VT52 emulation is similar to VT100, the later has more codes. By the way, the keypad is now in original VT52 form. 4.2 VT100 VT100 is by far the world standard terminal. Nearly every BBS system and mainframe computer understands this terminal format. Only very few of the commercial telecom programs come without a VT100 emulation. Therefore it is self evident that RUFUS had to emulate this terminal. RUFUS can understand almost all current features of the VT100, as far as is possible on a computer with graphics as simple as the ST. Underlined interlaced mode is not possible with the SM124 monitor. Just as "SELFTEST" is irrelevant. The codes to implement those VT100 functions are ignored. 4.2.1 ANSI Mode ANSI is the American norm (corresponding to DIN in Germany). Also, the control codes for terminals have only recently been set. The ANSI codes are practically identical to the VT100. The character sets are different, however. The major differences are incorporated into RUFUS. The most use of ANSI is in the MSDOS area, there the interface is handled through the PC program ANSI.SYS to ANSI terminal mode. To accomodate this, RUFUS has three character sets with all the ANSI characters included: RUFUS9, RUFUS10, RUFUS12. The numbers in the names gives the point size. Since all are GEM fonts, they can only be accessed with GDOS installed. 4.2.2 VT2XX Emulation Following the VT100, terminals of the VT2XX series were produced. The important difference from the VT100 is all characters are in full 8-bit mode. This allows the control codes starting with ESC[ to occupy a single character (CSI). As with ANSI, here RUFUS can handle the important codes. - 14 - Chapter 5 The Keyboard 5.1 General Keys There are terminals with keys serving special functions, RUFUS also has ways for keys to serve those functions. The menu of RUFUS can be reached by keys. Also, built into those menus are always key access. When inside a dialog box and the user can click to set a parameter (Terminal mode, RS232 baud rate) so can these also be assigned to happen with the press of a function key. Also, by the way, in the RS232 Menu the baud rate can be adjusted with the cursor-left and cursor-right keys. The complete list of key combinations is in Appendix B. The combination with the Alternate key is needed because of the connection with the Control key to BBS system and mainframe service (i.e. CTRL-C or CTRL-X). The Function keys are a perfect example. When the user is in terminal mode of RUFUS, pressing any function key will cause the whole sequence previously entered in the Function Key Definition menu to be sent. The exception is when the function key is loaded with a batch file or shell commend. [Then either that batch is executed or the command is passed to the shell.] In accessory mode the Help key has the effect of causing the Popup menu to shoot onto the screen. Pressing the Undo key causes the window to close, until the next call to run. 5.2 Special Terminal Keys No matter how close the emulation of the terminal is brought, is is necessary that some keys be left undefined. So, to represent the BREAK signal, the combination ALTERNATE-ESC is used. 5.2.1 Keys in the VT52 Emulation The VT52 emulation sends the corresponding VT52 codes for each cursor key pressed. Also, HOME and CLR supply the proper codes. When the user has the keypad in application mode, the keys (, ), /, * form the keys PF1 through PF4. 5.2.2 Keys in the VT100 Emulation The VT100 emulation sends the corresponding VT100 codes for each cursor key pressed. Also, HOME and CLR supply the proper codes. When the user has the keypad in application mode, the keys (, ), /, * form the keys PF1 through PF4. - 15 - Chapter 6 File Transfer 6.1 ASCII The ASCII transfer is a protocal free transfer, that is, the files are sent without reguard for loss. This kind of transfer is specially suited for when the user has prepared text files and would like to transmit them to an online system. 6.2 XMODEM XMODEM is the best simple protocal for file transfers. Almost every host computer and online system supports XMODEM for binary data sending. XMODEM can be used by RUFUS in the background. 6.3 YMODEM YMODEM is an expansion of XMODEM. Larger blocks and CRC checksumming make for a faster and safer file transfer. Most YMODEM implementations (YMODEM Batch) can transmit the file name and the size. RUFUS is unable to do that. As with XMODEM, YMODEM can also run in the background. 6.3.1 YMODEM-G A separate variant of YMODEM is YMODEM-G. YMODEM-G is faster than YMODEM. However,it cannot recover when an error crops up. YMODEM-G is for error free transfers through the appropriate MNP5 system. 6.4 ZMODEM ZMODEM is presently the most powerfull file transfer protocal and itself pleasantly always shows great stoutness. RUFUS uses this protocal through the programs RZ.PRG and SZ.PRG. Since ZMODEM is not runable in the background, the user may always use XMODEM or YMODEM. 6.5 STREAM STREAM is a specialty of RUFUS. STREAM is especially designed for error free phone lines (MNP5 or null modem). The disadvantage is that, even now none but RUFUS supports this protocal. However it is about 20% faster than ZMODEM. - 16 - Chapter 7 Modem Usage 7.1 The Correct Parameters RUFUS is right flexible when passing strings to and from the modem. The user can give the dial string not only a prefix but also a suffix. The possibilities are endless, passing a string so complex it befuddles you. In the Modem Parameter dialog six possible strings can be inserted. The first two are commands to be given to the modem. Both must end with a carriage return. The user can give this with the key combination of CONROL-M. When the modem is reset, the user must pause before sending more to the modem. Through use of the key combination CONTROL-I one can get a half second pause. The dial string can contain one additional code. The character '#' informs RUFUS to put the desired phone number in its place. The following strings will control a Hayes AT standard modem: RESET: ATZ ATZ Command to reset modem RETURN, send modem command out. half second pauses. At least a pair is needed. DIAL: ATDP# ATDP Command to pulse dial (use ATDT for tone). # number. end the command. The three next strings are ones the modem sends when it is unsuccessful at dialing the given number. The user should place the modem responses for no response there (BUZY etc.). 7.2 Editing the Numbers Phone numbers are given in the Number dialog. To set the system name or other information, the user must first click on the number. Now will appear to the right the info. Name, telephone number and a Batch can be inserted. The Batch is a RUFUS Batch Program constructed according to the instructions in chapter eight. 7.3 Dialing a Number From the Number Dialog there are three ways one number can be dialed. The user can simply click on the number and then click on the choose button. Also it is possible to double click on the number. And last, by keypress a number can be chosen. The keys F1 to F10 dial the first 10 numbers, while the key combination SHIFT-F1 through SHIFT-F6 dial numbers 11 thru 16. There lies much more to the box, and for the user who cannot be present between calls, RUFUS offers an automatic operation. As long as one of the three modem failure strings is received, RUFUS will try to call again. The time between two call attempts can be adjusted in the box also. - 17 - 7.4 Dialing More Numbers RUFUS offers the possibility of dialing many different numbers until a connection is made with one. To have this occur the corresponding button must be switched on in the Numbers box. Now the numbers can be dialed and tried out. With a click choose START to continue. If the auto dial switch is on, after unsuccessfully calling all the numbers RUFUS will begin again from the beginning. - 18 - Chapter 8 The Programming Language 8.1 Overview RUFUS contains its own programming language. With programming allowing accumulation of many repeated instructuctions, like in logging in, automation is possible. The RUFUS programs (short batch) are simply ASCII text in which each line has one command. If the first character in the line is a semicolon, the entire line can be used for giving comments. A batch can be broken off with a CTRL-X keypress. Exception is the DIAL command which can be manually cancelled with one of the keys SHIFT, ALTERNATE, CONTROL or broken off with the Mouse buttons. When the user needs to supply a file name (such as in UPLOAD), RUFUS will call the File Selector box. 8.2 Variables Variables are denoted with a '$' followed by a whole number between 0 and 99. $0 is automatically used, when none or an invalid variable (i.e $100) is given. The user is not obliged to become familair with its contents, with the next command always changing it. Some special variables available, naturally, must not be skipped. $F1-$F10, $SF1-$SF10 set the contents of the Function keys. $N1-$N16 stand for the telephone numbers in RUFUS' list. $UE has a dialog box outcome, in the application use can be made of it. Gone $D has the Fileselector outcome. Special variables can in these applications be used. The user must quote (i.e. " ") all strings. $0-$99, $n1-$n16 are numerical variables $d, $f1-$f10 and $sf1-$sf10 are string variables $ue is allowed to be used with both 8.3 Labels and Branching Labels or branch markers consist of a whole number between 0 and 255 followed by a colon (45:). GOTO, GOSUB, RETURN and IF can act on these labels. Label 0 should not be used, it is needed for GOSUB-RETURN to function. 8.4 The Commands ADD var value1 value2 adds the two items specified by value1 and value2 and places result into var. Example: ADD $1 $2 4 the value 4 is added to the contents of variable $2 and the result is put in variable $1. - 19 - ALERT [var] form_string RUFUS produces a GEM alert. The button selected will be stored in the optional variable. Form_string is formated as: [Icon-Number][text][button] Example: ALERT $4 "[3][Das ist das Ende][OK|NEIN]" Following exit from the Alert, the number of the button chosen will be in variable $4. BAUDRATE baudrate|var Baudrate set or inquired respectively. Example: BAUDRATE 2400 sets to 2400 Baud BAUDRATE $1 Determines the current baud and stores value in varable $1. BELL 0|1 With BELL the user can produce an acoustic signal. BELL 0 gives a ring, BELL 1 a dull tone. CLEARBUFFER Capture buffer is emptied. CLR Sends a Terminal reset command. CRLF Turns the automatic Linefeed delivery on. DIAL [var] fonenumber A phone number out of the register will be dialed. Automatic settings (Dial, Baudrate) will be followed. Success or failure of the call will be written to the supplied variable. There are only five possible values returned: -2 = connection broken 0 = Dialed successfully 1 = Failure#1 (your Modem parameter) 2 = Failure#2 3 = Failure#3 - 20 - Example: DIAL $N3 dials the third number in the Number list DIAL "1-202-736-5000" dials the number in the quotes (the White House). DIAL "CompuServe" dials the number of CompuServe if the BBS name and info are entered in the Numbers Dialog. [NEW for version 1.06] DIV var value1 value2 Divides value2 by value1 and places result in var. Example: DIV $1 $2 4 The value 4 is divided by the contents of variable 2 and the result is placed into variable 1. DOWNLOAD [var] filename Attempts to download the file using the previously selected protocal. Reports the result in the specified variable. Example: DOWNLOAD $1 "OUTFILE.ARC" END Exit a batch before the end of the file. FDELETE [var] filename Erases the file. Success or failure is reported in the variable. FILEEXIST [var] file_name Investigates the existance of the File and writes the result in the variable. 0 means that the file does not exist. GOSUB label|var Branch to the desired label (see also GOTO). The actual return position will be marked by label 0 and with RETURN command can be reached. The user can provide a variable instead of a constant label making indirect branches possible. Example: GOSUB 3 branches to label 3 GOSUB $3 branches to label number in variable $3. GOTO label Branches to the desired label if it exists, otherwise branches to the end of the batch. Instead of a constant label, a variable can be used making indirect branching possible. Example: GOTO 3 branches to label 3 GOTO $3 branches to label number in variable $3. - 21 - IF condition n1 n2 label When the condition is fulfilled, a branch is taken to the label, otherwise it falls through to the next command. n1 and n2 are numeric expressions and can also be variables or constants. The condition can be one of the following: EQ var == constant NE var != constant GE var >= constant LE var <= constant GT var > constant LT var < constant the branch succeeds as with GOTO. Example: IF EQ $1 0 4 Compares the contents of variable $1 to see if equal to 0. When true a branch off to label 4 is taken. LET var value places the value into the variable. Example: LET $1 4 Writes in $1 a 4. LOADINF file_name RUFUS configuration file is loaded. MUL var value1 value2 Multiplies the two values and places result into the variable. Example: MUL $1 $2 4 The value 4 is multiplies by value in variable $2 and the result is put into variable $1. NOCRLF Turns the automatic linefeed off. PRINT string[-] | \nnn | var [-] | Puts out either a string or a character with ASCII code nnn into the terminal window. A CR will automatically be sent, unless a '-' is the last character in the string. It is also allowed to use the variables $ue, $d, $f1-$f10, $sf1-$sf10 and $n1-$n16. Then it is necessary that eventually a null character follows the '-' to keep the variables existing separately. Example: PRINT "HALLO" gives HALLO in the Terminal. PRINT \027 writes an ESC at the Terminal. - 22 - PROTOKOLL protocal With this command the user can sellect the transfer protocal. The following protocal names are acceptable: XMODEM,YMODEM,ZMODEM,ASCII and STREAM. Giving the first letter of the term is sufficient. QUIT RUFUS will first question if the user is certain. RETURN Return from a subroutine. RETURN is identical to GOTO 0. RUN file_name [cmdline] Start a programme. Example:RUN "TEMPUS.PRG" $ue Start Tempus and give the supplied parameter. RWAIT [var] string [timeout] RWAIT waits till the specified string is received. Not breaking till the time set as timeout is reached, a value of 0 means success, otherwise a value not equal to 0 means failure. The exact failure codes have not yet been finalized. If an '&' is the first string character, it is ignored and for the rest of the string no distinction is made, while waiting, for upper- and lowercase characters. Also the last parameter can specify the timeout time. If TIMEOUT = 0, RWAIT waits FOREVER. Example: RWAIT $1 "&username" 10 Wait a maximum of 10 seconds for the supplied string, ignoring upper/lower case. SAVEBUFFER file_name Writes the Buffer to the specified file. Buffer Options settings are considered. SEND string[-] | \nnn | var [-] | Sends either a string or a character with ASCII code nnn. A CR will be automatically sent unless a '-' is the last character in the string. It is also allowable to use the variables $ue, $d, $f1-$f10, $sf1-$sf10 and $n1-$n16. Then it is necessary that eventually a null character follows the '-' to keep the variables existing separately. Example: SEND "Tagchen" SEND \027 SEND $ue - 23 - SUB var value1 value2 Subtract the values and leave the result in the variable. Example: SUB $1 $2 4 The value 4 is subtracted from the value in variable $2 and the result is placed in variable $1. SYSTEM command Pass a command to a shell such as: GEMINI, MUPFEL, MASTER. Example: SYSTEM "ls -l" List out a directory. TERMINAL value|var Set or inquire, respectively, the terminal mode. Given values 0=ASCII, 1=VT52 or 2=VT100, sets the emulation respectively. Given a variable, returns to the user the above respective value in the variable. Example: TERMINAL 1 set VT52 on. TERMINAL $1 determine the current Emulation and write the value in $1. TIMEOUT sec Set Timeout value for WAIT and RWAIT. UPLOAD [var] file_name Send the file using the previously selected protocal and report back the result in the variable. WAIT [var] [constant] Wait till the TIMEOUT preset time. The time can be directly set. - 24 - APPENDIX A Implementation of Terminal Emulation VT52 ESC < Enter VT100/ANSI Emulation ESC = Keypad in Application Mode ESC > Keypad in Normal Mode ESC A Cursor Up ESC B Cursor Down ESC C Cursor Right ESC D Cursor Left ESC E Terminal Reset ESC H Cursor Home ESC I Reverse Linefeed ESC J Clear Below Cursor ESC K Clear Remainder of Line ESC L Insert Line ESC M Delete Line ESC Y pl pc Position Cursor ESC Z Terminal Identification (RUFUS sends ESC / Z back) ESC b Foreground Color Set ESC c Background Color Set ESC d Clear Screen to Cursor ESC e Cursor On ESC f Cursor Off ESC j Save Cursor Position ESC k Cursor to Saved Position ESC l Clear Current Line ESC o Clear Current Line to Cursor ESC p Inverse On ESC q Inverse Off ESC v Wrap On ESC w Wrap Off - 25 - VT100 ESC (A Set UK character set to G0 ESC (B Set ASCII character set to G0 ESC (0 Set graphics character set [line-drawing] to G0 ESC )A Set UK character set to G1 ESC )B Set ASCII character set to G1 ESC )0 Set graphics character set [line-drawing] to G1 ESC [2h Keyboard lock ESC [2l Keyboard unlock ESC [4h Insert mode (*) ESC [4l Replace mode (*) ESC [12h Full duplex ESC [12l Half duplex ESC [20h CR instead of CRLF ESC [20l CR normal ESC [?1h Cursor key in Application mode ESC [?1l Cursor key in Cursor mode ESC [?2l Enter VT52-Emulation ESC [?3h 132 column Mode ESC [?3l 80 column Mode ESC [?4h Smooth Scrolling ESC [?4l Jump Scrolling ESC [?5h Inverse screen ESC [?5l Normal screen ESC [?6h Origin mode relative (*) ESC [?6l Origin mode absolute (*) ESC [?7h Wrap on ESC [?7l Wrap off ESC [?8h AUTO Repeat on (*) ESC [?8l AUTO Repeat off (*) ESC [?9h Interlace on (*) ESC [?9l Interlace off (*) - 26 - ESC [0m No Attribute ESC [1m Fat characters on ESC [2m Solid pointer on (*) ESC [3m Script on ESC [4m Underline on ESC [5m Blink on (RUFUS clear) ESC [6m Fast Blink on (*) ESC [7m Inverse on ESC [8m Abgedunkelt on (*) ESC [22m Fat off ESC [24m Underline off ESC [25m Blink off ESC [27m Inverse off ESC [30m Black foreground ESC [31m Red foreground ESC [32m Green foreground ESC [33m Yellow foreground ESC [34m Blue foreground ESC [35m Purple foreground ESC [36m Cyan-blue foreground ESC [37m White foreground ESC [40m Black background ESC [41m Red background ESC [42m Green background ESC [43m Yello background ESC [44m Blue background ESC [45m Purple background ESC [46m Cyan-blue background ESC [47m White background ESC [48m Low level ESC [49m High level ESC [ pn A Cursor up pn lines ESC [ pn B Cursor down pn lines ESC [ pn C Cursor right pn lines ESC [ pn D Cursor left pn lines ESC [ pl ; pc H Cursor Position ESC [ pl ; pc f Cursor Position ESC D Index ESC M Reverse Index ESC E Nextline ESC 7 Save cursor position and characteristics ESC 8 Restore cursor " and " ESC H Horizontal Tab set ESC [g Tab clear ESC [0g Tab clear ESC [3g All Tabs clear ESC #3 Double high, over half ESC #4 Double high, under half ESC #5 Standard high, standard Breite ESC #6 Double Bright (*) - 27 - ESC [K Erase from cursor to end of line ESC [0K Erase from cursor to end of line ESC [1K Erase from beginning of line to cursor ESC [2K Erase entire line ESC [J Erase from cursor to end of screen ESC [0J Erase from cursor to end of screen ESC [1J Erase from start of screen to cursor ESC [2J Erase entire screen ESC c Terminal Reset ESC [5n Status report ESC [6n Cursor position report ESC [c What Terminal type are you? ESC [0c " ESC Z " ESC [ pt ; pb r Scroll region set ESC [0q all LED's off ESC [ ps q LED ps on ESC [ pn P Characters erase ESC [ pn L lines insert ESC [ pn M lines erase ESC [s Save Cursor position ESC [u Cursor Position restore Also with the Control Code CSI all ESC [ codes are interpreted, so that some VT2xx compatibility is possible. - 28 - APPENDIX B Keyboard Codes ALT-A ASCII File send ALT-B Batch file execute ALT-C Block copy to Clipboard ALT-D Path setting ALT-E File Download with current transfer protocal ALT-F Function key setting ALT-G Save the Buffers ALT-H Modem hangup, DTR line toggle ALT-I Save Parameter settings ALT-J Save the Blocks ALT-L Parameter load ALT-M Modem parameters ALT-P Transfer protocal select ALT-Q RUFUS Exit ALT-R RS232 settigns ALT-S File Upload with current Protocal ALT-T Terminal setting ALT-U About RUFUS ALT-V Shell command execute ALT-W Dial Telephone number ALT-X Programme execute ALT-Y Buffer empty ALT-Z Font select ALT-1 1200 Baud ALT-2 2400 Baud ALT-3 300 Baud ALT-4 4800 Baud ALT-9 9600 BAUD ALT-ESCAPE curses Break SHIFT-ESCAPE CSI SHIFT-ALT-B Batch command execute SHIFT-ALT-M STREAM select SHIFT-ALT-P Buffer management SHIFT-ALT-S Send Blocks SHIFT-ALT-U Wrapmode select SHIFT-ALT-V Terminal emulation setting SHIFT-ALT-X XMODEM and CHKSUM select SHIFT-ALT-Y YMODEM and CRC select SHIFT-ALT-Z ZMODEM select - 29 - APPENDIX C Special Files RUFUS.RUF - contains the default settings RUFUS uses when run. When RUFUS encounters file with this extension in the RUF folder, it is executed as a Batch process. RUFUS.FNT - this font is loaded by RUFUS when GDOS is not installed. The font must be in GEM Font format and nonporportional. SZ.PRG and RZ.PRG are the programs which enable ZMODEM to operate. With RZ the following parameters are possible: SZ can take a few parameters more: [Trans note: Parameters were missing from the RUFUS.ARC file in all versions I could find. M_Kg.] KERMIT is a file transfer protocal especially for Mainframes. KERMIT.TTP allows communication with this protocal. TERM.TTP is a simple BTX decoder, with BTX.RUF it will start running in the RUFUS window. - 30 - APPENDIX D Listing of RUFUS Commands ADD var1 value1 value2 ALERT [var] form_string BAUDRATE baud|var BELL 0|1 CLEARBUFFER CLR CRLF DIAL [var] telephone_number DIV var value1 value2 DOWNLOAD [var] file_name END FDELETE [var] file_name FILEEXIST [var] file_name GOSUB GOTO label IF candition n1 n2 label LOADINF file_name MUL var value 1 value2 NOCRLF PRINT string[-] | \nnn | PROTOKOLL protocal QUIT RETURN RWAIT [var] string [constant] RUN file_name [cmdline] RWAIT [var] string [timeout] SAVEBUFFER file_name SEND string[-] | \nnn | SUB var value1 value2 SYSTEM command TERMINAL 0|1|2|var TIMEOUT sec UPLOAD [var] file_name WAIT [var] [constant] - 31 - INDEX Accessory Mode ANSI Batch BTX Buffer Set Font Function Keys GDOS Kermit Key Cover Modem Multitasking Path RS232 Shareware STREAM Terminal VT100 VT52 XMODEM YMODEM YMODEM/G ZMODEM